package com.luke.base.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.luke.base.domain.vo.Location;
import com.luke.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 设备管理对象 lk_equipment
 * 
 * @author luke
 * @date 2021-05-30
 */
public class LkEquipment implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 设备型号 */
    @Excel(name = "设备型号")
    private String equipmentModel;

    /** 设备编号 */
    @Excel(name = "设备编号")
    private String equipmentNumber;

    /** IMEI号 */
    @Excel(name = "IMEI号")
    private String imei;

    /** 物联网卡号 */
    @Excel(name = "物联网卡号")
    private String cardNumber;

    /** 安装状态 */
    @Excel(name = "安装状态",type = Excel.Type.EXPORT)
    private String installStatus;

    /** 激活状态 */
    @Excel(name = "激活状态",type = Excel.Type.EXPORT)
    private String activateStatus;

    /** 车辆型号 */
    private String vehicleModel;

    /** 车身颜色 */
    private String vehicleColor;

    /** 电机号 */
    private String motorNumber;

    /** 车架号 */
    private String frameNumber;

    /** 电池类型 */
    @Excel(name = "电池类型",type = Excel.Type.EXPORT)
    private String batteryType;
    /** 电池电压 */
    @Excel(name = "电池电压",type = Excel.Type.EXPORT)
    private String batteryVoltage;

    /** 激活时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd",type = Excel.Type.EXPORT)
    private Date activateTime;

    /** 到期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到期时间", width = 30, dateFormat = "yyyy-MM-dd",type = Excel.Type.EXPORT)
    private Date dueTime;

    /** 绑定的用户id */
    private Long userId;

    private String vehicleImage;

    private LkUser lkUser;

    private Location location;

    /** 请求参数 */
    private Map<String, Object> params;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setEquipmentModel(String equipmentModel) 
    {
        this.equipmentModel = equipmentModel;
    }

    public String getEquipmentModel() 
    {
        return equipmentModel;
    }
    public void setEquipmentNumber(String equipmentNumber) 
    {
        this.equipmentNumber = equipmentNumber;
    }

    public String getEquipmentNumber() 
    {
        return equipmentNumber;
    }
    public void setImei(String imei) 
    {
        this.imei = imei;
    }

    public String getImei() 
    {
        return imei;
    }
    public void setCardNumber(String cardNumber) 
    {
        this.cardNumber = cardNumber;
    }

    public String getCardNumber() 
    {
        return cardNumber;
    }
    public void setInstallStatus(String installStatus) 
    {
        this.installStatus = installStatus;
    }

    public String getInstallStatus() 
    {
        return installStatus;
    }
    public void setActivateStatus(String activateStatus) 
    {
        this.activateStatus = activateStatus;
    }

    public String getActivateStatus() 
    {
        return activateStatus;
    }
    public void setVehicleModel(String vehicleModel) 
    {
        this.vehicleModel = vehicleModel;
    }

    public String getVehicleModel() 
    {
        return vehicleModel;
    }
    public void setVehicleColor(String vehicleColor) 
    {
        this.vehicleColor = vehicleColor;
    }

    public String getVehicleColor() 
    {
        return vehicleColor;
    }
    public void setMotorNumber(String motorNumber) 
    {
        this.motorNumber = motorNumber;
    }

    public String getMotorNumber() 
    {
        return motorNumber;
    }
    public void setFrameNumber(String frameNumber) 
    {
        this.frameNumber = frameNumber;
    }

    public String getFrameNumber() 
    {
        return frameNumber;
    }
    public void setActivateTime(Date activateTime) 
    {
        this.activateTime = activateTime;
    }

    public Date getActivateTime() 
    {
        return activateTime;
    }
    public void setDueTime(Date dueTime) 
    {
        this.dueTime = dueTime;
    }

    public Date getDueTime() 
    {
        return dueTime;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public String getBatteryType() {
        return batteryType;
    }

    public void setBatteryType(String batteryType) {
        this.batteryType = batteryType;
    }

    public String getBatteryVoltage() {
        return batteryVoltage;
    }

    public void setBatteryVoltage(String batteryVoltage) {
        this.batteryVoltage = batteryVoltage;
    }

    public String getVehicleImage() {
        return vehicleImage;
    }

    public void setVehicleImage(String vehicleImage) {
        this.vehicleImage = vehicleImage;
    }

    public LkUser getLkUser() {
        return lkUser;
    }

    public void setLkUser(LkUser lkUser) {
        this.lkUser = lkUser;
    }

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }

    public Map<String, Object> getParams()
    {
        if (params == null)
        {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("equipmentModel", getEquipmentModel())
            .append("equipmentNumber", getEquipmentNumber())
            .append("imei", getImei())
            .append("cardNumber", getCardNumber())
            .append("installStatus", getInstallStatus())
            .append("activateStatus", getActivateStatus())
            .append("vehicleModel", getVehicleModel())
            .append("vehicleColor", getVehicleColor())
            .append("motorNumber", getMotorNumber())
            .append("frameNumber", getFrameNumber())
            .append("activateTime", getActivateTime())
            .append("dueTime", getDueTime())
            .append("userId", getUserId())
            .toString();
    }
}
